package com.junko.service.app;

import com.junko.core.base.BaseService;
import com.junko.model.app.Ctg;
import com.junko.model.app.CtgType;

import java.util.List;
import java.util.Map;

/**
 * Created by junko on 2017/4/14.
 * 后台分类service接口
 */
public interface ICtgService extends BaseService<Ctg> {
    /**
     * 查询所有分类
     *
     * @return
     */
    List<Ctg> listAll();

    /**
     * 根据分类类型ID和父分类id查询所有分类
     *
     * @param map
     * @return
     */
    List<Ctg> listByCtgTypeId(Map map);

    /**
     * 根据名称查询分类
     *
     * @param name
     * @return
     */
    Ctg findByName(String name);

    /**
     * 查询某分类的子分类列表
     *
     * @return
     */
    List<Ctg> listAllByParentId(String parentId);

    /**
     * 根据类型ID查询某个分类类型下的所有父分类
     *
     * @param typeId
     * @return
     */
    List<Ctg> listParentByTypeId(String typeId);

    /**
     * 根据类型名称查询某个分类类型下的所有父分类
     *
     * @return
     */
    List<Ctg> listParentByTypeName(String typeName);

    /**
     * 根据类型ID更新所有分类的分类类型
     *
     * @param ctgType
     * @return
     */
    int updateByCtgType(CtgType ctgType);

    /**
     * 查询某个类别的所有子分类
     *
     * @param ctgTypeId
     * @return
     */
    List<Ctg> listChildByTypeId(String ctgTypeId);

    Ctg findByTypeAndName(String type, String name);

    List<Ctg> listAllByParentNameAndTypeName(Map params);

    List<Ctg> findByParentIdOrderCount(String parentId);
}